# 1、有这样的一个列表，深度不可知，列表里面还会嵌套列表，
# 我想要把这个列表从左到右拼接成一个新的列表，且顺序不变
# 举例：[12,33,[11,22,33,[55,66,99]],[55,66]]
# 变成：[12, 33, 11, 22, 33, 55, 66, 99, 55, 66]

"""def fun(list_in):
    list_result = []
    for i in list_in:
        if type(i)==list:
            list_result = list_result+fun(i)
        else:
            list_result.append(i)
    return list_result
print(fun([12,33,[11,22,33,[55,66,99]],[55,66]]))
"""
# 2、编写装饰器，为多个函数加上认证的功能（用户的账号密码）
#  要求登录成功一次，后续的函数都无需输入用户名和密码


# 3、请实现一个装饰器，把函数的返回值+100然后返回

"""def f( numbers):
    return numbers
def decorate(d3):
    def new(number):
        print(d3(number)+100)
    return new
new = decorate(f)
new(23)"""


# 4、请实现一个装饰器，通过一次调用使函数重复执行5次
"""def fun(name):
    print(f"大家好，我是{name}")
def decorate(fun):
    def new(x,name):
        for i in range(x):
            fun(name)
            print("第%s次"%(i+1))
    return new
s = decorate(fun)
s(5,'丁莹')
"""


# 5、输入任意个字符串,分别实现从小到大输出和从大到小输出
# def s_sort(*args):
#     list_ = list(args)
#     print(sorted(list_,reverse=False))
#     print(sorted(list_,reverse=True))
# s_sort("12","13","44","a","3")

# 6、接收n个数字，求这些参数数字的和
"""def fun_6(*args):
    sum=0
    for i in args:
        sum+=i
    return sum
print(fun_6(12,23,34,45,87,234))
"""
# 7、编写一个函数，实现数字的自增（从0开始，每调用一次，数字+1）
"""def i(num):
    def add():
        nonlocal num
        num+=1
        return num
    return add
num = i(10)
print(num())
print(num())
"""

